﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Entities;
using Business;
using DevComponents.DotNetBar;
namespace Presentation
{
    public partial class frmPhucHoiSach : DevComponents.DotNetBar.Office2007Form
    {
        DataTable dt = new DataTable();
        public frmPhucHoiSach()
        {
            InitializeComponent();
            
        }
        
        void LoadGridView()
        {
            DataGridViewButtonColumn colXoa = new DataGridViewButtonColumn();
            colXoa.HeaderText = "Xóa tất cả";
            colXoa.Name="Xoa";
            colXoa.DefaultCellStyle.ForeColor = System.Drawing.Color.Red;
            colXoa.Text = "Xóa";
            colXoa.UseColumnTextForButtonValue = true;
            colXoa.Width = 50;
            

            DataGridViewButtonColumn colPhucHoi = new DataGridViewButtonColumn();
            colPhucHoi.Name = "PhucHoi";
            colPhucHoi.HeaderText = "Phục hồi";
            colPhucHoi.Text = "Phục hồi";
            colPhucHoi.UseColumnTextForButtonValue = true;
            colPhucHoi.Width = 80;
            colPhucHoi.DefaultCellStyle.ForeColor=Color.Green;

            DataTable dt = new DataTable();
            dt.Columns.Add("MaSach");
            dt.Columns.Add("TenSach");
            dt.Columns.Add("TheLoai");
            dt.Columns.Add("TacGia");
            dt.Columns.Add("SoLuong");
            dt.Columns.Add("DonGia");
            List<SachDTO> listSach = SachService.GetDeletedSachList();
            if (listSach.Count != 1 && listSach[0] != null)
            {
                foreach (SachDTO s in listSach)
                {

                    dt.Rows.Add(s.MaSach, s.TenSach, TheLoaiService.GetTheLoaiByMaLoai(s.MaTheLoai).TenTheLoai, TacGiaService.GetTacGiaByMaTacGia(s.MaTacGia).TenTacGia, s.SoLuong, s.DonGia);
                }
            }
            dgvSach.DataSource = dt;
            dgvSach.Columns["MaSach"].HeaderText = "Mã sách";
            dgvSach.Columns["TenSach"].HeaderText = "Tên sách";
            dgvSach.Columns["TheLoai"].HeaderText = "Thể loại";
            dgvSach.Columns["TacGia"].HeaderText = "Tác giả";
            dgvSach.Columns["SoLuong"].HeaderText = "Số lượng tồn";
            dgvSach.Columns["DonGia"].HeaderText = "Đơn giá";
            dgvSach.Columns.Add(colXoa);
            dgvSach.Columns.Add(colPhucHoi);
            dgvSach.AllowUserToAddRows = false;
            dgvSach.ReadOnly = true;
            
        }

        private void frmPhucHoiSach_Load(object sender, EventArgs e)
        {
            LoadGridView();
            DataGridViewButtonColumn xoa = (DataGridViewButtonColumn)dgvSach.Columns["Xoa"];
            xoa.FlatStyle = FlatStyle.Flat;
            xoa.DefaultCellStyle.ForeColor = Color.Red;

            DataGridViewButtonColumn phucHoi = (DataGridViewButtonColumn)dgvSach.Columns["PhucHoi"];
            phucHoi.FlatStyle = FlatStyle.Flat;
            phucHoi.DefaultCellStyle.ForeColor = Color.Green;
        }

        private void dgvSach_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            
            if (dgvSach.Columns[e.ColumnIndex].Name == "Xoa")
            {
                if (e.RowIndex == -1)
                {
                    
                    DialogResult xoaTatCa = MessageBoxEx.Show("Xóa tất cả!\nBạn có thật sự muốn xóa tất cả các sách?", "Hệ thống", MessageBoxButtons.YesNo, MessageBoxIcon.Stop);
                    if (xoaTatCa == DialogResult.Yes)
                    {
                        while (dgvSach.RowCount > 0)
                        {
                            int maSach = int.Parse(dgvSach["MaSach", 0].Value.ToString());
                            SachService.Delete(maSach);
                            dgvSach.Rows.RemoveAt(0);
                        }
                            
                        
                    }
                }
                else
                {
                    DialogResult xoa = MessageBoxEx.Show("Bạn có thực sự muốn xóa sách này?", "Hệ thống", MessageBoxButtons.YesNo, 
                        MessageBoxIcon.Hand);
                    if (xoa == DialogResult.Yes)
                    {
                        SachService.Delete(int.Parse(dgvSach["MaSach", e.RowIndex].Value.ToString()));
                        dgvSach.Rows.RemoveAt(e.RowIndex);

                    }
                }
            }
            if (dgvSach.Columns[e.ColumnIndex].Name == "PhucHoi")
            {
                if (e.RowIndex == -1)
                {
                    DialogResult phucHoiTatCa = MessageBoxEx.Show("Phục hồi tất cả!\nBạn có thật sự muốn phục hồi tất cả các sách?", "Hệ thống", MessageBoxButtons.YesNo, MessageBoxIcon.Stop);
                    if (phucHoiTatCa == DialogResult.Yes)
                    {
                        while(dgvSach.RowCount>0)
                        {
                            int maSach = int.Parse(dgvSach["MaSach", 0].Value.ToString());
                            SachService.Undelete(maSach);
                            dgvSach.Rows.RemoveAt(0);
                        }
                    }
                }
                else
                {
                    DialogResult phucHoi = MessageBoxEx.Show("Bạn có thực sự muốn phục hồi sách này?", "Hệ thống", MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question);
                    if (phucHoi == DialogResult.Yes)
                    {
                        SachService.Undelete(int.Parse(dgvSach["MaSach", e.RowIndex].Value.ToString()));
                        dgvSach.Rows.RemoveAt(e.RowIndex);
                    }
                }
            }
        }
    }
}
